home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Mag HDD Backup
/
Amiga Mag HDD Backup.zip
/
Amiga Mag HDD Backup
/
Alexander.img.bin
/
Alexander.img
/
315 2 files Archive.sit
/
Any plain-text files
/
? Any plain-text file 119
< prev
next >
Wrap
Text File
|
1995-01-03
|
5KB
|
196 lines
/*
** _SeamlessMap.adpro
**
** $VER: _SeamlessMap.adpro 1.1 (September 20,1994)
**
**
** DESCRIPTION:
** This ADPro macro turns the current image into a seamless
** texture map suitable for tiling in any 3D animation soft-
** ware such as LightWave, Aladdin4D, and Imagine.
**
** REQUIREMENTS:
** For best results, use a fairly homogenous texture.
**
** NOTE:
** This will decrease the size of the original image as
** either or both top or side "strips" need to be cropped
** and composited (overlayed), thus reducing the total
** area of the final image. Also, this is NOT a foolproof
** method, just a quick and easy hack.
**
** CREDITS:
** William Frawley (some portions adapted from ASDG macros)
**
***********************************************************/
OPTIONS RESULTS
ADDRESS "ADPro"
/*
** Save the current environment.
*/
TempDefaults = "T:TempADProDefaults"
SAVE_DEFAULTS TempDefaults
/*
** Ask User to Rate Degree of Homogeny of Image
**
** For example, if image is not very homogenous, a larger
** strip will need to be cropped and composited for a more
** convincing appearance, and vice versa.
*/
OkayN '"Homogeny Rating"' '"Image Degree of Homogeny?"',
'"Homogenous|Medium|Chaotic|Cancel"'
IF (RC=0) THEN CALL ErrorOut 10
IF (RC=1) THEN StripRatio=10
IF (RC=2) THEN StripRatio=7
IF (RC=3) THEN StripRatio=5
/*
** Ask User Whether to Tile Left/Right, Top/Bottom or Both
*/
OkayN '"Seam Orientation"' '"Which sides to be seamless?"',
'"Top/Bottom|Left/Right|Both|Cancel"'
IF (RC=0) THEN CALL ErrorOut 10
IF (RC=1) THEN SeamFlag=1
IF (RC=2) THEN SeamFlag=2
IF (RC=3) THEN SeamFlag=3
/*
** Start the Processing Loop
*/
IF SeamFlag=1|SeamFlag=3 THEN DO /* Process Top Strip */
/* Get Current Image Dimensions & Save to TEMP */
XSize /* Image Width */
ImageW=ADPRO_RESULT
YSize /* Image Height */
ImageH=ADPRO_RESULT
SAVER "TEMP" "XXX" "RAW"
/* Initialize Variables for Top Strip */
StripW=ImageW /* Same as original */
StripH=ImageH%StripRatio /* Percentage of original */
FinalW=ImageW /* Same as original */
FinalH=ImageH-StripH /* Leave off old top strip */
GradDir="UL 0 0 0 UR 0 0 0 LL 255 255 255 LR 255 255 255"
CALL New_Edge()
END
IF SeamFlag=2|SeamFlag=3 THEN DO /* Process Side Strip */
XSize
ImageW=ADPRO_RESULT
YSize
ImageH=ADPRO_RESULT
SAVER "TEMP" "XXX" "RAW"
/* Initialize Variables for Side Strip */
StripW=ImageW%StripRatio
StripH=ImageH
FinalW=ImageW-StripW
FinalH=ImageH
GradDir="UL 0 0 0 UR 255 255 255 LL 0 0 0 LR 255 255 255"
CALL New_Edge()
END
/*
** CleanUp & Exit
*/
ADDRESS COMMAND "C:Delete >NIL: T:Strip"
ADDRESS COMMAND "C:Delete >NIL: T:Strip.alpha"
Okay1 "Finished!"
CALL ErrorOut 0
/**********************************************************/
/* INTERNAL FUNCTIONS */
/**********************************************************/
ErrorOut:
PARSE ARG ExitCode
IF (EXISTS( TempDefaults )) THEN DO
LOAD_DEFAULTS TempDefaults
IF (RC ~= 0) THEN DO
ADPRO_TO_FRONT
OKAY1 "Error restoring settings."
END
ADDRESS COMMAND "Delete >NIL:" TempDefaults
END
EXIT ExitCode
New_Edge:
/*
** Crop Strip & Save to T:
*/
Operator "CROP_IMAGE" StripW StripH
IF (RC~=0) THEN CALL ErrorOut 10
Saver "IFF" "T:Strip" "RAW" /* Save to T: */
IF (RC~=0) THEN CALL ErrorOut 10
/*
** Create Alpha Gradient For Top Strip Compositing
*/
Loader "BACKDROP" "XXX" StripW StripH "COLOR" GradDir
/* NOTE: Specifying "GRAY" will NOT work correctly! */
IF (RC ~= 0) THEN DO
ADPRO_TO_FRONT
OKAY1 "Sorry, BACKDROP Loader Failed!"
CALL ErrorOut 10
END
Saver "IFF" "T:Strip.alpha" "RAW" /* Save to T: */
/*
** Load Original Image, Composite Strip Using Alpha, and
** Crop New Image Discarding Area of Original Strip
*/
Loader "TEMP" "XXX"
IF (RC ~= 0) THEN DO
ADPRO_TO_FRONT
OKAY1 "Sorry, TEMP Loader Failed!"
CALL ErrorOut 10
END
Loader "IFF" "T:Strip.alpha" ASALPHA COMPOFFSET,
ImageW-StripW ImageH-StripH
Loader "IFF" "T:Strip" ALPHAMEM COMPOFFSET,
ImageW-StripW ImageH-StripH
Operator "CROP_IMAGE" FinalW FinalH ImageW-FinalW,
ImageH-FinalH
IF (RC~=0) THEN CALL ErrorOut 10
RETURNs included along with utility programs to use ColorFonts. One disk. ;├